home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 14 / hacker14.iso / programacao / visual / perl.exe / {app} / Webroot / cgi-bin / customize.cgi < prev    next >
Encoding:
Text File  |  2003-01-11  |  2.8 KB  |  92 lines

  1. #!perl
  2.  
  3. use CGI qw(:standard :html3);
  4.  
  5. # Some constants to use in our form.
  6. @colors=qw/aqua black blue fuschia gray green lime maroon navy olive
  7.     purple red silver teal white yellow/;
  8. @sizes=("<default>",1..7);
  9.  
  10. # recover the "preferences" cookie.
  11. %preferences = cookie('preferences');
  12.  
  13. # If the user wants to change the background color or her
  14. # name, they will appear among our CGI parameters.
  15. foreach ('text','background','name','size') {
  16.     $preferences{$_} = param($_) || $preferences{$_};
  17. }
  18.  
  19. # Set some defaults
  20. $preferences{'background'} = $preferences{'background'} || 'silver';
  21. $preferences{'text'} = $preferences{'text'} || 'black';
  22.  
  23. # Refresh the cookie so that it doesn't expire.  This also
  24. # makes any changes the user made permanent.
  25. $the_cookie = cookie(-name=>'preferences',
  26.                          -value=>\%preferences,
  27.                          -expires=>'+30d');
  28. print header(-cookie=>$the_cookie);
  29.  
  30. # Adjust the title to incorporate the user's name, if provided.
  31. $title = $preferences{'name'} ?
  32.     "Welcome back, $preferences{name}!" : "Customizable Page";
  33.  
  34. # Create the HTML page.  We use several of Netscape's
  35. # extended tags to control the background color and the
  36. # font size.  It's safe to use Netscape features here because
  37. # cookies don't work anywhere else anyway.
  38. print start_html(-title=>$title,
  39.                  -bgcolor=>$preferences{'background'},
  40.                  -text=>$preferences{'text'}
  41.                  );
  42.  
  43. print basefont({SIZE=>$preferences{size}}) if $preferences{'size'} > 0;
  44.  
  45. print h1($title),<<END;
  46. You can change the appearance of this page by submitting
  47. the fill-out form below.  If you return to this page any time
  48. within 30 days, your preferences will be restored.
  49. END
  50.     ;
  51.  
  52. # Create the form
  53. print hr(),
  54.     start_form,
  55.  
  56.     "Your first name: ",
  57.     textfield(-name=>'name',
  58.               -default=>$preferences{'name'},
  59.               -size=>30),br,
  60.  
  61.     table(
  62.           TR(
  63.              td("Preferred"),
  64.              td("Page color:"),
  65.              td(popup_menu(-name=>'background',
  66.                            -values=>\@colors,
  67.                            -default=>$preferences{'background'})
  68.                 ),
  69.              ),
  70.           TR(
  71.              td(''),
  72.              td("Text color:"),
  73.              td(popup_menu(-name=>'text',
  74.                            -values=>\@colors,
  75.                            -default=>$preferences{'text'})
  76.                 )
  77.              ),
  78.           TR(
  79.              td(''),
  80.              td("Font size:"),
  81.              td(popup_menu(-name=>'size',
  82.                            -values=>\@sizes,
  83.                            -default=>$preferences{'size'})
  84.                 )
  85.              )
  86.           ),
  87.  
  88.     submit(-label=>'Set preferences'),
  89.     hr;
  90.  
  91. print a({HREF=>"/"},'Go to the home page');
  92. print end_html;